using RAG.Domain.Interfaces;
using RAG.Domain.DomainEvents;

namespace RAG.Domain.EventHandlers;

/// <summary>
/// 用户登录失败事件处理器
/// </summary>
public class UserLoginFailedEventHandler : IDomainEventHandler<UserLoginFailedEvent>
{
    public UserLoginFailedEventHandler()
    {
    }

    public async Task HandleAsync(UserLoginFailedEvent domainEvent)
    {
        // 记录登录失败事件
        Console.WriteLine($"用户登录失败: {domainEvent.Username} (原因: {domainEvent.Reason}, IP: {domainEvent.IpAddress}, 失败次数: {domainEvent.FailedAttempts})");
        
        // 可以在这里添加其他业务逻辑，比如：
        // - 安全检查（暴力破解检测）
        // - 发送安全警告邮件
        // - 记录安全事件
        // - 触发账户锁定逻辑
        
        await Task.CompletedTask;
    }
} 